/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package com.sc.vessel.info.model.breakdown.impl;

import com.sc.vessel.info.model.breakdown.*;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;

import org.eclipse.emf.ecore.impl.EFactoryImpl;

import org.eclipse.emf.ecore.plugin.EcorePlugin;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Factory</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class BreakdownFactoryImpl extends EFactoryImpl implements BreakdownFactory {
    /**
     * Creates the default factory implementation.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public static BreakdownFactory init() {
        try {
            BreakdownFactory theBreakdownFactory = (BreakdownFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.sc.com/vessel/CDO/breakdown/1.0.0"); 
            if (theBreakdownFactory != null) {
                return theBreakdownFactory;
            }
        }
        catch (Exception exception) {
            EcorePlugin.INSTANCE.log(exception);
        }
        return new BreakdownFactoryImpl();
    }

    /**
     * Creates an instance of the factory.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public BreakdownFactoryImpl() {
        super();
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EObject create(EClass eClass) {
        switch (eClass.getClassifierID()) {
            case BreakdownPackage.COMPONENT: return (EObject)createComponent();
            case BreakdownPackage.CONFIGURATION: return (EObject)createConfiguration();
            case BreakdownPackage.CONFIG_ELEMENT: return (EObject)createConfigElement();
            case BreakdownPackage.ATTRIBUTE_IDENTIFY: return (EObject)createAttributeIdentify();
            case BreakdownPackage.ACCIDENT: return (EObject)createAccident();
            case BreakdownPackage.CONFIG_ELEMENT_SELECTED: return (EObject)createConfigElementSelected();
            default:
                throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
        }
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public Component createComponent() {
        ComponentImpl component = new ComponentImpl();
        return component;
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public Configuration createConfiguration() {
        ConfigurationImpl configuration = new ConfigurationImpl();
        return configuration;
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public ConfigElement createConfigElement() {
        ConfigElementImpl configElement = new ConfigElementImpl();
        return configElement;
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public AttributeIdentify createAttributeIdentify() {
        AttributeIdentifyImpl attributeIdentify = new AttributeIdentifyImpl();
        return attributeIdentify;
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public Accident createAccident() {
        AccidentImpl accident = new AccidentImpl();
        return accident;
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public ConfigElementSelected createConfigElementSelected() {
        ConfigElementSelectedImpl configElementSelected = new ConfigElementSelectedImpl();
        return configElementSelected;
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public BreakdownPackage getBreakdownPackage() {
        return (BreakdownPackage)getEPackage();
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @deprecated
     * @generated
     */
    @Deprecated
    public static BreakdownPackage getPackage() {
        return BreakdownPackage.eINSTANCE;
    }

} //BreakdownFactoryImpl
